package arrays_and_matrices;

import java.util.Arrays;

/**
 * 整数数组里面包含若干个0，要求把所有的0放到后面。空间复杂度为O(N)
 * 例：{0, 1, 0, 3, 12} -> {1, 3, 12, 0, 0}
 *
 * 思路：遍历把不是0的依次排到最前面，然后把数组长度减去 不是0的个数， 剩下的就全是0，补上即可实现。
 */
public class MoveZero {
    public static void main(String[] args) {
        int[] nums = {0, 1, 0, 3, 12};
        MoveZero moveZero = new MoveZero();
        nums = moveZero.moveZeros(nums);
        System.out.println(Arrays.toString(nums));

        System.out.println(1 % 20);
    }

    public int[] moveZeros(int[] nums) {
        if(nums == null || nums.length == 0) {
            return nums;
        }

        int j = 0;

        for (int i = 0; i < nums.length; i++) {
            if(nums[i] != 0) {
                nums[j++] = nums[i];
            }
        }

        while(j < nums.length) {
            nums[j++] = 0;
        }
        return nums;
    }
}
